home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swags_z.zip / STRINGS.SWG / 0019_Fastest UPPERCASE.pas < prev    next >
Pascal/Delphi Source File  |  1993-06-08  |  1KB  |  27 lines

  1.  
  2. { The following remains the fastest all-purpose UpperCase routine (using only 32
  3. bytes): }
  4.  
  5.   procedure Upper4(var Str: String);
  6.   InLine(
  7.     $8C/$DA/               {      mov   DX,DS               }
  8.     $5E/                   {      pop   SI                  }
  9.     $1F/                   {      pop   DS                  }
  10.     $FC/                   {      cld                       }
  11.     $AC/                   {      lodsb                     }
  12.     $30/$E4/               {      xor   AH,AH               }
  13.     $89/$C1/               {      mov   CX,AX               }
  14.     $E3/$12/               {      jcxz  @30                 }
  15.     $BB/Ord('a')/Ord('z')/ {      mov   BX,'za'             }
  16.     $AC/                   { @15: lodsb                     }
  17.     $38/$D8/               {      cmp   AL,BL               }
  18.     $72/$08/               {      jb    @28                 }
  19.     $38/$F8/               {      cmp   AL,BH               }
  20.     $77/$04/               {      ja    @28                 }
  21.     $80/$6C/$FF/$20/       {      sub   BYTE PTR [SI-1],$20 }
  22.     $E2/$F1/               { @28: loop  @15                 }
  23.     $8E/$DA);              { @30: mov   DS,DX               }
  24.  
  25. { >    *30,000 times on a 40 MHz 386 Tested on a 33 Mhz 386. }
  26.  
  27.